package com.shujia.java.day14.demo3;

import java.io.File;

/**
 * 批量修改指定后缀名的文件
 * test_004_赵六 - 副本.csv  ->  004_赵六.txt
 *
 * 
 * 定义FIle F:\\data
 * 通过listFiles() 获取当前目录下文件或目录的对象
 * isFile() 是 删除
 * 获取名称
 * 处理这个名字
 * 获取_ - .的下标  截取 004_赵六 和.csv
 * if（.csv）{
 * new File("004_赵六"+".txt");
 * renameTo
 *
 */

public class Demo3 {
    public static void main(String[] args) {
        File file = new File("F:\\data");
        show(file);
    }
    public static void show(File file){
        //判断是否是文件
        if (file.isFile()) {
            /**
             * 注意 因为递归路劲会发生变化 要使用所传递对象的目录路径
             */
            String path=file.getAbsolutePath();
            int pathIndex=path.lastIndexOf("\\");
            path=path.substring(0,pathIndex);
            //获取名称
            String fileName = file.getName();
            //获取 .
            int index = fileName.lastIndexOf(".");
            //截取后缀
            String lastName = fileName.substring(index);
            //判断是否是.csv结尾
            if (lastName.equals(".csv")) {
                //处理String  获取_-  截取004_赵六
                //获取_
                int index1 = fileName.indexOf("_");
                //获取-
                int index2 = fileName.indexOf("-");
                //截取 004_赵六
                String name = fileName.substring(index1+1, index2-1);
                //拼接 004_赵六.txt
                String newName=name+".txt";
                //替换操作  需要新的File对象
                File newFile = new File(path,newName);
                //替换
                System.out.println(file.renameTo(newFile));
            }
        }else {
            //获取data下 所有文件或目录的对象
            File[] files = file.listFiles();
            for (File f :files) {
                if (f.isFile()) {
                    /**
                     * 注意 因为递归路劲会发生变化 要使用所传递对象的目录路径
                     * 获取当前对象的目录路径
                     */
                    //F:\\data
                    // F:\\data\\test
                    String path=f.getAbsolutePath();
                    int pathIndex=path.lastIndexOf("\\");
                    path=path.substring(0,pathIndex);
                    System.out.println(path);
                    //获取名称
                    String fileName = f.getName();
                    //获取 .
                    int index = fileName.lastIndexOf(".");
                    //截取后缀
                    String lastName = fileName.substring(index);
                    //判断是否是.csv结尾
                    if (lastName.equals(".csv")) {
                        /**
                         * test_004_赵六 - 副本.csv  ->  004_赵六.txt
                         */
                        //处理String  获取_-  截取004_赵六
                        //获取_
                        int index1 = fileName.indexOf("_");
                        //获取-
                        int index2 = fileName.indexOf("-");
                        //截取 004_赵六
                        String name = fileName.substring(index1+1, index2-1);
                        //拼接 004_赵六.txt
                        String newName=name+".txt";
                        //替换操作  需要新的File对象
                        // 到这要考虑 路径问题 避免发生剪切的情况
                        File newFile = new File(path,newName);
                        //替换
                        System.out.println(f.renameTo(newFile));
                    }
                }else {
                    // F:\\data\\test
                    show(f);
                }
            }

        }

    }
}
